【Informatica】IPUを計算するためのメータリングデータ取得APIが強化されました、というお話

【Informatica】IPUを計算するためのメータリングデータ取得APIが強化されました、というお話

Clock Icon2024.11.01

はじめに

データ事業本部の川中子(かわなご)です。

導入を検討しているサービスや、サービスの導入初期って、費用管理面が結構気になりますよね。
私も学習初期に個人作成したアプリで、翌月2万円の請求が来て速攻で運用を停止したことがあります。
(事前の費用見積もりや使用状況の監視は大切)

InformaticaではIPUという単位で費用が計算されていて、
対象期間に実行されたジョブやプロセスの実行時間などに応じて計算されます。

https://knowledge.informatica.com/s/article/How-to-calculate-the-metered-value-for-CDI?language=en_US

このIPUの確認は管理者画面のメータリングページからグラフと併せて確認が可能です。
もちろんデータのエクスポートも可能ですが、毎月各サービスのcsvを手動で取得するのは大変ですね。
ということで今回は、10月のメジャーアップデートで強化されたメータリングデータ取得APIを紹介します。

ドキュメントの変更点

まずAPIの概要ですが、前述した管理者画面から取得できるデータをAPI経由で取得するものになっています。
バージョンアップ前と比較するために、日本語用ページと英語用ページを比較してみようと思います。

まずは日本語表示(旧バージョン)のドキュメントを確認してみます。
スクリーンショット 2024-10-25 9.39.09

項目としては以下のようになっています。

  • IPU使用率データのエクスポートジョブ要求の送信
  • ジョブレベルメータリングデータのエクスポートジョブ要求の送信
    • メーターID
  • メータリングデータのエクスポートジョブのステータスの取得
  • メータリングデータのダウンロード

次に最新のドキュメントを見てみます。
スクリーンショット 2024-10-25 9.37.26

項目としては以下のようになっています。
並べてみると純粋に項目が増えていることが分かりますね。

English 日本語
Requesting summary IPU usage data IPU使用率データのエクスポートジョブ要求の送信
Request summary data with the new REST API resource -
Request summary data with the older REST API resource IPU使用率データのエクスポートジョブ要求の送信(実質対応)
Requesting project-level metering data -
Requesting asset-level data -
Requesting job-level metering data ジョブレベルメータリングデータのエクスポートジョブ要求の送信
Meter IDs for job-level reports メーターID
Getting the metering data export job status メータリングデータのエクスポートジョブのステータスの取得
Downloading the metering data メータリングデータのダウンロード

以前から公開されていた組織全体のサマリーやジョブ単位のIPU取得のAPIは据え置きで、
新しい形式のAPIがいくつか追加で公開されているようです。

そのため今まで使用していたAPIもそのまま使用できますし、
よりニーズに応じた粒度のデータを取得できるようになったという改修のようです。

各取得単位ごとの解説は以下のページで説明されています。

https://docs.informatica.com/cloud-common-services/administrator/current-version/rest-api-reference/platform-rest-api-version-3-resources/metering-data.html

各APIを実際に動かしてみる

ここからは現在公開されている各APIを実際に動かしてみて、出力形式を見てみようと思います。
なお、メータリングデータを取得する際に共通するステップは以下の通りです。

比較対象として、GUIの管理者画面からCDIのメータリングデータを取得して置きます。

スクリーンショット 2024-10-25 10.38.56

アセットの内訳タブからデータを取得しているため、アセット単位のデータ出力になっています。
プロジェクトやフォルダのカラムもあるので、詳細にIPU消費を計算することができそうです。

Request summary data with the older REST API resource

まずは以前からあった古い方の、サマリー取得用のAPIを叩いてみます。
項目:Request summary data with the older REST API resource

対応URI:
/public/core/v3/license/metering/ExportMeteringDataAllLinkedOrgsAcrossRegion

Body
{
    "startDate":"2024-09-01T00:00:00Z",
    "endDate":"2024-9-30T00:00:00Z",
    "combinedMeterUsage":"TRUE",
    "callbackUrl":"https://MyExportJobStatus.com"
}

出力されたCSVデータがこちらになります。
スクリーンショット 2024-10-25 15.54.51

このデータではOrgId > MeterId > Dateごとのレコードが表示されているので、
あくまでも組織全体の概要を把握する用途での使用が想定されているものです。
IPU列の値が少数第一位までしか表示されないので、そこは注意です。

Request summary data with the new REST API resource

次に新しく公開された方の、サマリー取得用APIを叩いてみます。
項目:Request summary data with the new REST API resource

対応URI:
/public/core/v3/license/metering/ExportMeteringData

まずここのURIがスッキリしましたね。
そしてBodyに渡せるパラメータが増えてます。

{
    "startDate":"2024-09-01T00:00:00Z",
    "endDate":"2024-9-30T00:00:00Z",
    "jobType":"SUMMARY",
    "combinedMeterUsage":"TRUE",
    "allLinkedOrgs":"TRUE",
    "callbackUrl":"https://MyExportJobStatus.com"
}

出力されたCSVですが、改修前の形式から特に変更はなさそうでした。
スクリーンショット 2024-10-25 15.59.52

Requesting project-level metering data

次はプロジェクト単位でデータを取得するAPIです。
項目:Requesting project-level metering data

プロジェクト単位でデータを取得したい場合は、前項で実行したAPIから、
jobType:PROJECT_FOLDERとしてパラメータを1つ変更するだけでOKです。

Body
{
    "startDate":"2024-09-01T00:00:00Z",
    "endDate":"2024-9-30T00:00:00Z",
    "jobType":"PROJECT_FOLDER",
    "combinedMeterUsage":"TRUE",
    "allLinkedOrgs":"TRUE",
    "callbackUrl":"https://MyExportJobStatus.com"
}

出力されたCSVデータがこちらになります。
スクリーンショット 2024-10-25 14.30.08

こちらはOrgId > Project > Folder > Dateごとのレコードが表示されています。
重要なカラムのみに絞られ、プロジェクト列やIPU列など情報がより詳細に表示されるようになったので、
プロジェクトごとにIPU消費量を集計する用途でも使用することができるようになりました。

Requesting asset-level data

次はプロジェクト単位でデータを取得するAPIです。
項目:Requesting asset-level data

こちらも新しく公開されたAPIと同じURLが使用されており、パラメータだけが少し異なっています。
jobType:ASSETとして、加えてmeterIdを指定する形でパラメータを設定します。

指定するmeterIdはこちらを参考にして下さい。
https://docs.informatica.com/cloud-common-services/administrator/current-version/rest-api-reference/platform-rest-api-version-3-resources/metering-data/requesting-job-level-metering-data/meter-ids-for-job-level-reports.html

Body
{
    "startDate":"2024-09-01T00:00:00Z",
    "endDate":"2024-9-30T00:00:00Z",
    "meterId":"a2nB20h1o0lc7k3P9xtWS8",
    "jobType":"ASSET",
    "callbackUrl":"https://MyExportJobStatus.com"
}

出力されたCSVデータがこちらになります。
スクリーンショット 2024-10-25 16.06.04

meterId列は指定した値だけが並んでいて、IPU列などがより詳細に表示されているような形式です。
またアセットの単位でレコードが表示されるようになっているので、
特に稼働時間が長くて費用に負担をかけているジョブを探すときなどに特に有効そうですね。

なおmeterIdを指定せずに実行した場合は、全てのmeterIdを取得する仕様になっています。

Requesting job-level metering data

最後は、以前からあったジョブ単位でデータを取得するAPIです。
項目:Requesting job-level metering data

対応URI:
/public/core/v3/license/metering/ExportServiceJobLevelMeteringData

Body
{
    "startDate":"2024-09-01T00:00:00Z",
    "endDate":"2024-9-30T00:00:00Z",
    "allMeters":"FALSE",
    "meterId":"a2nB20h1o0lc7k3P9xtWS8",
    "callbackUrl":"https://MyExportJobStatus.com"
}

出力されるテーブルはとてもカラムが多くなっています。
スクリーンショット 2024-10-25 15.33.23

こちらはアセット単位よりも詳細な、実際に稼働したジョブ単位でのレコードになってます。
この粒度のデータは管理者画面のメータリングページからだと取得できません。

さいごに

今回仕様を確認したAPIについて、簡単に表にまとめてみました。

取得単位 使用想定シーン
サマリ 組織全体やサービス単位のIPUが確認できればよい
プロジェクト プロジェクトごとにIPUを計算して、担当部署の費用を計算したい
アセット 運用上で特に費用に負担をかけているアセットを把握したい
ジョブ ジョブの稼働状況も併せて把握したい

メジャーアップデート前と比べると、実行するAPIのURLがシンプルになって、
欲しいデータの粒度に応じてパラメータでコントロールができるようになった のが変更点となりそうです。

基本はGUI上で操作できるのがメリットとなるInformaticaですが、
費用の算出などの事務作業はうまくAPIを活用して自動化できるとよいですね。

この記事が何かしらの参考になれば幸いです。
最後まで記事を読んで頂き、ありがとうございました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.